package com.yeban.base.day05;

import java.util.Scanner;

/**
 * @Desc TODO
 * @Author yeban
 * @Date 2025/9/29
 */
public class TwoArrayTest01 {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        System.out.print("请输入想要查看几宫格的行/列数n（必须是奇数）：");
        int n = sc.nextInt();
        int[][] arr = new int[n][n];

        // 第一个数：1放在第一行的中间
        int x = 0;
        int y = n / 2;
        int count = 1;
        arr[x][y] = count;

        // 从2开始循环
        while(count < n * n) {

            count ++;
            //右上角的下标
            x --;
            y ++;

            // 行越界，列不越界，对应列的最后一个为count
            if(x < 0 && y < n) {
                x = n - 1;
                arr[x][y] = count;
            }

            // 列越界，行不越界，对应行的第一个为count
            else if(x >= 0 && y > n - 1) {
                y = 0;
                arr[x][y] = count;
            }

            // 右上角都越界，当前位置的正下方为count
            else if( (x < 0 && y > n - 1) || ( x >= 0 && y < n && arr[x][y] != 0 )) {
                x += 2;
                y --;
                arr[x][y] = count;
            }

            else if(x >= 0 && y < n && arr[x][y] == 0) {
                arr[x][y] = count;
            }

        }

        System.out.println(n*n + "宫格如下：");
        for (int i = 0; i < n; i ++) {
            for (int j = 0; j < n; j ++) {
                System.out.print( (arr[i][j]<10 ? "0" + arr[i][j] : arr[i][j]) + "\t");
            }
            System.out.println();
        }

    }
}